درس دوم
ﺗﻌﺮﻳﻒ ﻣﺘﻐﯿﺮھﺎ در ﺳﻲ ﺷﺎرپ:
ﺳﻲ ﺷﺎرپ ﻋﻨﺎﺻﺮی را ﻛﻪ ﺑﻜﺎر ﻣﻲ ﮔﯿﺮد ھﻤﺎﻧﻨﺪ اﻋﺪاد و ﻛﺎراﻛﺘﺮھﺎ ، ﺑﻪ ﺻﻮرت ﻧـﻮع ھـﺎ ( ( Types ﻃﺒﻘـﻪ ﺑﻨـﺪی ﻣـﻲ ﻛﻨﺪ. اﻳﻦ اﻧﻮاع ﺷﺎﻣﻞ ﻣﻮارد زﻳﺮ ﻣﻲ ﺷﻮﻧﺪ :
ﻧﻮع ھﺎی ﭘﺎﻳﻪ اﻳﻲ از ﭘﯿﺶ ﺗﻌﺮﻳﻒ ﺷﺪه ﻣﺎﻧﻨﺪ اﻋﺪاد و ﻏﯿﺮه.
ﻧﻮع ھﺎی ﺗﻌﺮﻳﻒ ﺷﺪه ﺗﻮﺳﻂ ﻛﺎرﺑﺮ ﻛﻪ ﺷﺎﻣﻞ STRUCTھﺎ و ENUM ھﺎ ﻣﻲ ﺷﻮﻧﺪ.
ﻧﺤﻮه ی ﺗﻌﺮﻳﻒ ﻣﺘﻐﯿﺮھﺎ از ﻧﻮع ھﺎی ﭘﺎﻳﻪ اﻳﻲ از ﭘﯿﺶ ﺗﻌﺮﻳﻒ ﺷﺪه :
ھﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﯿﺪ از ﻣﺘﻐﯿﺮھﺎ ﺑﺮای ﻧﮕﮫﺪاری اﻃﻼﻋﺎت اﺳﺘﻔﺎده ﻣﻲ ﺷﻮد. در ﺳـﻲ ﺷـﺎرپ اﺑﺘـﺪا ﻧـﻮع ﻣﺘﻐﯿـﺮ و ﺳﭙﺲ ﻧﺎم ﻣﺘﻐﯿﺮ و در آﺧﺮ ﻳﻚ ﺳﻤﻲ ﻛﻮﻟﻮن ﺑﻜﺎر ﺑﺮده ﻣﻲ ﺷﻮد. ﺑﺮای ﻣﺜﺎل :
;int a
ﻛﻪ در اﻳﻨﺠﺎ ﻣﺘﻐﯿﺮ a ﺑﻌﻨﻮان ﻳﻚ ﻣﺘﻐﯿﺮ ﺣﺎوی اﻋﺪاد ﺻﺤﯿﺢ ﺗﻌﺮﻳﻒ ﺷﺪه اﺳﺖ.
ﻧﻜﺘﻪ ی ﻣﮫﻤﻲ ﻛﻪ در اﻳﻨﺠﺎ ﺣﺎﺋﺰ اھﻤﯿﺖ اﺳﺖ ، ﻣﻘﺪار دھﻲ اوﻟﯿﻪ ی ﻣﺘﻐﯿﺮھﺎ ﻣﻲ ﺑﺎﺷﺪ. در ﻏﯿـﺮ اﻳﻨـﺼﻮرت ﻛﺎﻣﭙـﺎﻳﻠﺮ ﺳﻲ ﺷﺎرپ ﺑﺮﻧﺎﻣﻪ را ﺑﺎ ﻳﻚ ﺧﻄﺎ ﻣﺘﻮﻗﻒ ﻣﻲ ﻛﻨﺪ. دﻟﯿﻞ اﻳﻦ اﻣـﺮ ھـﻢ اﻳـﻦ اﺳـﺖ ﻛـﻪ از اﺳـﺘﻔﺎده از ﻣﺘﻐﯿﺮھـﺎی ﺑـﺪون ﻣﻘﺪار در ﻃﻮل ﺑﺮﻧﺎﻣﻪ ﺟﻠﻮﮔﯿﺮی ﺷﻮد ﺗﺎ ﻣﯿﺰان ﺧﻄﺎھﺎی در ﺣﯿﻦ اﺟﺮا ﻛﺎھﺶ ﻳﺎﺑﺪ.
ﻧﻮع ھﺎی داده ای ﭘﺎﻳﻪ ی زﻳﺮ در در ﺳﻲ ﺷﺎرپ ﺑﻪ ﺻﻮرت ﭘﯿﺶ ﻓﺮض ﻣﮫﯿﺎ ھﺴﺘﻨﺪ:
: objectﻧﻮﻋﻲ اﺳﺖ ﻧﺎﻣﺤﺪود ﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ ﺗﻤﺎم اﻧﻮاع دﻳﮕﺮ را ﻧﯿﺰ ﺷﺎﻣﻞ ﺷﻮد. ﻣﺜﺎل :
;object = null
: stringرﺷﺘﻪ ؛ در اﻳﻨﺠﺎ ﻳﻚ رﺷﺘﻪ ﺗﻮاﻟﻲ ﻛﺎراﻛﺘﺮھﺎی ﻳﻮﻧﯿﻜﺪ ﻣﻲ ﺑﺎﺷﺪ. ﻣﺜﺎل :
;"string s= "hello
: sbyteﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ٨ ﺑﯿﺘﻲ ﻋﻼﻣﺖ دار.
: byteﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ٨ ﺑﯿﺘﻲ ﺑﺪون ﻋﻼﻣﺖ. ﻣﺜﺎل :
;۲۱ = sbyte val
: shortﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ۶١ ﺑﯿﺘﻲ ﻋﻼﻣﺖ دار.
: ushortﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ۶١ ﺑﯿﺘﻲ ﺑﺪون ﻋﻼﻣﺖ. ﻣﺜﺎل :
;۲۱ = short val
: intﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ٢٣ ﺑﯿﺘﻲ ﻋﻼﻣﺖ دار.
: unitﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ٢٣ ﺑﯿﺘﻲ ﺑﺪون ﻋﻼﻣﺖ. ﻣﺜﺎل :
;۲۱ = int val
: longﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ۴۶ ﺑﯿﺘﻲ ﻋﻼﻣﺖ دار.
: ulongﻧﻮع داده اﻳﻲ ﺻﺤﯿﺢ ۴۶ ﺑﯿﺘﻲ ﺑﺪون ﻋﻼﻣﺖ. ﻣﺜﺎل :
;Long val۱ = ۱۲; long val۲ = ۳۴L
ﻛﻼ در اﻳﻨﺠﺎ u ﺑﻪ ﻣﻌﻨﺎی unsignedاﺳﺖ.
: floatﻧﻮع اﻋﺸﺎری ﺑﺎ . single precision
: doubleﻧﻮع اﻋﺸﺎری ﺑﺎ . double precisionﻣﺜﺎل :
;float val = ۱.۲۳f
: boolﻧﻮع داده اﻳﻲ Booleanﻛﻪ ﻣﻲ ﺗﻮاﻧﺪ true و ﻳﺎ falseﺑﺎﺷﺪ. ﻣﺜﺎل :
;Bool val = true
: charﻛﺎراﻛﺘﺮ، دراﻳﻨﺠﺎ charﻳﻚ ﻛﺎراﻛﺘﺮ ﻳﻮﻧﯿﻜﺪ اﺳﺖ.
;'char val = 'h
ﺑﻪ ﻧﺤﻮه ی ﺗﻌﺮﻳﻒ ﻛﺎراﻛﺘﺮ ھﺎ و ھﻤﭽﻨﯿﻦ رﺷﺘﻪ ھﺎ در ﺳﻲ ﺷﺎرپ دﻗﺖ ﻛﻨﯿﺪ.
: decimalﻧﻮع داده اﻳﻲ دﺳﯿﻤﺎل ﺑﺎ ۸۲ رﻗﻢ ﻣﻌﻨﻲ دار.
;decimal val = ۱.۲۳M
ﻳﻚ ﻧﻜﺘﻪ :
ﺑﮫﺘﺮ اﺳﺖ ھﻨﮕﺎم ﺗﻌﺮﻳﻒ ﻳﻚ ﻣﺘﻐﯿﺮ ، ﻧﺎﻣﻲ ﺑـﺎ ﻣـﺴﻤﺎ ﺑـﺮای آن اﻧﺘﺨـﺎب ﺷـﻮد ﺗـﺎ در ھﻨﮕـﺎم ﻛـﺎر ﺧﻮاﻧـﺪن ﻛـﺪ ﺳﺎده ﺗﺮ ﮔﺮدد. ھﻤﭽﻨﯿﻦ رﺳﻢ ﺷﺪه اﺳﺖ ﻛﻪ ﻧﻮع ﻣﺘﻐﯿﺮ را ﺑﻪ ﺻﻮرت ﺧﻼﺻﻪ ﺑﻪ ﻧﺎم ﻣﺘﻐﯿﺮ اﺿﺎﻓﻪ ﻣﻲ ﻛﻨﻨـﺪ. ﺑــﺮای ﻣﺜــﺎل ﺑﺠــﺎی FirstName ﺑﮫﺘــﺮ اﺳــﺖ ﺑﻨﻮﻳــﺴﯿﻢ . strFirstNameﺑــﻪ اﻳــﻦ ﻧــﻮع ﻧﮕــﺎرش Hungarian notation ﻣﻲ ﮔﻮﻳﻨﺪ.
ﺗﻤﺎم ﻧﻮع ھﺎی ﭘﯿﺶ ﻓﺮض ﺗﻌﺮﻳﻒ ﺷﺪه در ﺳﻲ ﺷﺎرپ ﺷﻲء ھﺴﺘﻨﺪ. در آﻳﻨﺪه ﺑﯿﺸﺘﺮ در اﻳﻦ ﻣﻮرد ﺻـﺤﺒﺖ ﺧﻮاھﯿﻢ ﻛﺮد.
ﻣﺜﺎل اﻳﻦ ﻗﺴﻤﺖ :
ﻳﻚ ﺑﺮﻧﺎﻣﻪ ی console ﺟﺪﻳﺪ در را VS.NETﺑﺎز ﻛﻨﯿﺪ. ﻧﺎم آﻧﺮا در اﺑﺘﺪا ۲۰ ex اﻧﺘﺨـﺎب ﻧﻤﺎﻳﯿـﺪ. در اﻳﻨﺠـﺎ ﻣـﻲ ﺧـﻮاھﯿﻢ دو ﻣﺘﻐﯿﺮ رﺷﺘﻪ اﻳﻲ و ﺻﺤﯿﺢ را ﺗﻌﺮﻳﻒ و ﺳﭙﺲ در ﺧﺮوﺟﻲ ﻧﻤﺎﻳﺶ دھﯿﻢ.
ﻛﺪ ﻧﮫﺎﻳﻲ ﺑﻪ ﺻﻮرت زﻳﺮ ﻣﻲ ﺑﺎﺷﺪ:
;using System
namespace ۲۰ex
}
</// <summary
./// Summary description for Class۱
</// </summary
class Class۱
}
</// <summary
./// The main entry point for the application
</// </summary
[[ STAThread
(static void Main(string[] args
}
;۰ = int intVar۱
;int intVar۲
;۱ =intVar۲
;۲۱ = int intV۳ = ۱۵ , intV۴
;"string strText۱ = "abcd
Console.WriteLine (
+ "The value for variables are : \n intVar۱="+intVar۱
+ "\n intVar۲="+ intVar۲
+ "\n intV۳=" + intV۳
+ "\n intV۴=" + intV۴
"\n strText۱=" + strText۱ ) ;
;("Console.WriteLine("\n\n Press any key to terminate
!Console.ReadLine(); // pause screen
}
}
{
ﻧﻜﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق:
ﺑﻚ اﺳﻠﺶ ان ، در زﺑﺎﻧﮫﺎی ﻣﺸﺘﻖ ﺷﺪه از ﺳﻲ ﺑﻪ ﻣﻌﻨﺎی new lineﻣﻲ ﺑﺎﺷﺪ.
در ﻛﺪ ﻓﻮق ﻧﺤﻮه ی ﺗﻌﺮﻳﻒ ﭼﻨﺪ ﻣﺘﻐﯿﺮ در ﻳﻚ ﺧﻂ و ﺣﺎﻟﺘﮫﺎی ﻣﻘﺪار دھﻲ ﻣﺨﺘﻠﻒ را ﻣﻼﺣﻈﻪ ﻣﻲ ﻛﻨﯿﺪ.
از ﻣﺘﺪ ReadLine ﺑﺮای ﻧﮕﻪ داﺷﺘﻦ ﺧﺮوﺟﻲ و ﻣﺸﺎھﺪه ی آن در اﻳﻨﺠﺎ اﺳﺘﻔﺎده ﻛﺮدﻳﻢ.
ﻋﺎدت ﻛﻨﯿﺪ ﺑﻪ ﺻﻮرت دﻧﺪاﻧﻪ دار ﻛﺪ ﺑﻨﻮﻳﺴﯿﺪ. اﻳﻨﻜـﺎر ﺧﻮاﻧـﺎﻳﻲ ﻛـﺪ را ﺻـﺪ ﺑﺮاﺑـﺮ ﻣـﻲ ﻛﻨـﺪ. در اﻳﻨﺠـﺎ ﻛـﺪھﺎی داﺧﻞ ﻣﺘﺪ ، main ﻛﺎﻣﻼ ﭼﻨﺪ دﻧﺪاﻧﻪ از آﻛﻮﻻدھﺎی ﺑﺎز و ﺑﺴﺘﻪ ﻛﺮدن آن ﺟﻠﻮ ﺗﺮ ھﺴﺘﻨﺪ.
در ﻛﺪ ﺑﺎﻻ در ﻣﺘﺪ WriteLine اﻋﺪاد و رﺷﺘﻪ ھﺎ ﺑﺎ ھﻢ ﺟﻤﻊ ﺷﺪه اﻧـﺪ! اﻳـﻦ ﻣـﻮرد ﺑـﺪﻟﯿﻞ وﺟـﻮد overload ھﺎی زﻳﺎد اﻳﻦ ﺗﺎﺑﻊ و ... ﻣﯿﺴﺮ ﮔﺸﺘﻪ اﺳﺖ. اﺻﻼ ﺑﻪ آن دل ﻧﺒﻨﺪﻳﺪ! ﭼﻮن در آﻳﻨﺪه ﻛﺎﻣﭙﺎﻳﻠﺮ ﺳـﻲ ﺷـﺎرپ اﮔـﺮ ﭼﻨﯿﻦ اﻋﻤﺎﻟﻲ را در ﺟﺎھﺎی دﻳﮕﺮی ﻣﺮﺗﻜﺐ ﺷﻮﻳﺪ ﺑﻪ ﺷﺪت ﺑﺎ ﺷﻤﺎ ﺑﺮﺧﻮرد ﺧﻮاھﺪ ﻛـﺮد!! ﺑـﺮای ﺟﻤـﻊ ﻛـﺮدن اﻋﺪاد ﺑﺎ رﺷﺘﻪ ھﺎ ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﻋـﺪد ﺑـﻪ رﺷـﺘﻪ ﺗﺒـﺪﻳﻞ ﮔـﺮدد و ﺑﻌـﺪ ... . در اﻳـﻦ ﻣـﻮرد در ﻣﻘـﺎﻻت ﺑﻌـﺪی ﺑﺤـﺚ ﺧﻮاھﺪ ﮔﺮدﻳﺪ.
در ﻣﻮرد ﻛﻼﺳﮫﺎ و using و namespace و ﻏﯿﺮه در آﻳﻨﺪه ﺑﯿﺸﺘﺮ ﺻﺤﺒﺖ ﺧﻮاھﯿﻢ ﻛﺮد.
منابع:
سایت VCsharp.ir
نظرات شما عزیزان: